package com.regedit.aplicacion.controllers;

import org.json.JSONObject;

import com.regedit.aplicacion.dao.DatabaseHelper;
import com.regedit.aplicacion.dao.EntityDao;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

public class BDController {

	private Context mContext;

	public BDController(Context context){
		mContext = context;
	}
	
	public Cursor getDataByName(String nombre){

		// instancio la clase Helper
		DatabaseHelper mDbHelper = new DatabaseHelper(mContext);
		// obtengo la db en modo lectura
		SQLiteDatabase db = mDbHelper.getReadableDatabase();

		// How you want the results sorted in the resulting Cursor
		String sortOrder = EntityDao.COL_TITLE + " ASC";
		String groupBy = null;
		String having = null;

		String[] projection = null;
		String selection = EntityDao.COL_TITLE + " LIKE ?";
		String[] selectionArgs = new String[] { "%" + nombre + "%" };

		Cursor cursor = db.query(EntityDao.TABLE_NAME, // Nombre de la tabla
				projection, // columnas que se devuelven
				selection, // Los campos del where
				selectionArgs, // los valores (reemplaza los '?')
				groupBy, // don't group the rows
				having, // don't filter by row groups
				sortOrder // The sort order
				);
		cursor.moveToFirst();

		while (!cursor.isAfterLast()) {
			String texto = cursor.getString(cursor
					.getColumnIndexOrThrow(EntityDao.COL_TITLE));
			Log.e("texto", texto);
			cursor.moveToNext();
		}

		cursor.moveToFirst();
		return cursor;
	
	}
	
	public long insertAuto(String nombre) {
		// instancio la clase Helper
		DatabaseHelper mDbHelper = new DatabaseHelper(mContext);
		// obtengo la db en modo escritura
		SQLiteDatabase db = mDbHelper.getWritableDatabase();

		// Creo la data que va a ser insertada (Mapa key-value)
		ContentValues values = new ContentValues();
		values.put(EntityDao.COL_TITLE, nombre);

		// Inserto la data. Devuelve el id de la linea insertada.
		// En caso de error devuelve -1
		long newRowId;
		newRowId = db.insert(EntityDao.TABLE_NAME, null, values);
		Log.e("newRowId", String.valueOf(newRowId));
		return newRowId;
	}
	
}
